开始之前:
1. 追踪物体输出相关数据
当HUSKYLENS 2检测到可追踪的目标物体时,可获取相关追踪数据。可以获取的数据有:物体的ID、名称、xy坐标、宽度、高度。
示例程序如下。
# -*- coding: UTF-8 -*-
# MindPlus
# Python
from unihiker import GUI
from pinpong.board import Board
from dfrobot_huskylensv2 import *
u_gui=GUI()
Board().begin()
huskylens = HuskylensV2_I2C()
huskylens.knock()
huskylens.switchAlgorithm(ALGORITHM_OBJECT_TRACKING)
line1=u_gui.draw_text(text="物体ID:",x=0,y=0,font_size=18, color="#0000FF")
line2=u_gui.draw_text(text="物体名称:",x=0,y=40,font_size=18, color="#0000FF")
line3=u_gui.draw_text(text="物体坐标:",x=0,y=80,font_size=18, color="#0000FF")
line4=u_gui.draw_text(text="物体宽高:",x=0,y=120,font_size=18, color="#0000FF")
while True:
huskylens.getResult(ALGORITHM_OBJECT_TRACKING)
if (huskylens.available(ALGORITHM_OBJECT_TRACKING)):
line1.config(text=(str("物体ID:") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).ID if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))
line2.config(text=(str("物体名称:") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).name if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))
line3.config(text=(str("物体坐标:") + str((str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).xCenter if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1)) + str((str(",") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).yCenter if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))))))
line4.config(text=(str("物体宽高:") + str((str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).width if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1)) + str((str(",") + str((huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING).height if huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING) else -1))))))))
在Mind+中点击运行,等待程序上传完成后。
将HUSKYLENS 2摄像头对准要追踪的物体(追踪物体须先框选目标,详见二哈识图 2 物体追踪功能说明。
框选完成后,对准要追踪的目标物体,可观察输出结果。
**运行结果:**可输出追踪到的物体ID、名称、xy坐标、宽度、高度。物体名称默认为"物体" 。